package com.blueocean_health.care.management.service;


import java.util.List;

import com.blueocean_health.care.management.domain.base.SingleService;
import com.blueocean_health.care.management.domain.dto.UpdateNurseDto;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.blueocean_health.care.management.domain.base.OrderInfo;
import com.blueocean_health.care.management.domain.base.SysResult;
import com.blueocean_health.care.management.domain.ordervo.OrderInfoVo;
import com.blueocean_health.care.management.domain.ordervo.UserOrderVo;
import com.blueocean_health.care.management.exception.OrderException;
import com.blueocean_health.care.management.exception.OrderServiceException;

/**
 * @Author ChenPeng cp
 * @Date 2017/8/18 17:28
 */


public interface OrderInfoService {
	

    SysResult insertOrderInfo(OrderInfoVo orderInfovo,String hospitalId,Integer userId,Long version,String orderType) throws OrderException;
	

    SysResult deleteOrRecoveryOrderInfo(String orderFlag, String orderId,String loginPhone) throws OrderException;
	

    SysResult updateOrderInfoStatus(String orderStatus, Integer id) throws OrderException;

    SysResult updateOrderAccount(String accountFlag, Integer id,String time) throws OrderException;

    SysResult updateOrderInfoStatusForSchedule(String orderStatus, Integer id) throws OrderException;
	
    List<OrderInfo> getLastOrderInfoList();
    

    SysResult insertUserOrder(UserOrderVo orderVo,Long version,String loginPhone) throws OrderException;
    
    Long getFirstOrderTime(String orderId,Long version);
    
    Long getLastOrderTime(String orderId,Long version);

    SysResult deleteOrderInfo(String orderFlag,String orderId) throws OrderServiceException;

    void deleteRefundOrderAndUpdateServiceRefundFlag(String orderId)throws OrderException;



    void updateOrderPayStatusAndDelCharge(String orderId) throws OrderException;

    void sendMsgFromUserToStaff(OrderInfo orderInfo);
    void sendMsgFromStaffToUser(OrderInfo orderInfo);

    SysResult getSingleService(Integer hid);

    SysResult updateNurse(UpdateNurseDto dto) throws OrderServiceException ;
    void deleteRefundOrderAndChargeByServiceId(String serviceId)throws OrderServiceException;

}
